package be.groept.ace.cursusplanning.model;


import be.groept.ace.cursusplanning.persistency.IPersistentieController;
import be.groept.ace.cursusplanning.persistency.IPersistentieProvider;
import be.groept.ace.cursusplanning.persistency.Persisteerbaar;


/**
 * 
 * @author Gouke
 *
 */

public class HerscholingCursist extends Cursist implements Persisteerbaar {

	private String hoogsteDiploma;
	private String redenHerscholing;

	private IPersistentieProvider pProvider;
	/**
	 * stelt een nieuwe herscholingcursist in
	 * @param cursistNummer
	 * 			nummer van de cursist
	 * @param naam
 * 				naam van de cursist
	 * @throws IllegalArgumentException
	 */
	
	public HerscholingCursist(String cursistNummer, String naam) throws IllegalArgumentException{
		super(cursistNummer,naam);
		setHoogsteDiploma("");
		setRedenHerscholing("");
	}
	
	/**
	 * getter: Hoogste diploma
	 * @return String hoogsteDiploma
	 */
	public String getHoogsteDiploma() {
		return hoogsteDiploma;
	}

	/**
	 * setter: Hoogste diploma
	 * @param hoogsteDiploma
	 * 
	 */
	public void setHoogsteDiploma(String hoogsteDiploma) {
		/* vrij veld, moeilijk controle te doen */
		if (hoogsteDiploma == null) throw new IllegalArgumentException("null waardes niet aanvaard");
		
		this.hoogsteDiploma = hoogsteDiploma;
	}
	

	/**
	 *  getter: geeft de reden van herscholing
	 *  @return String redenHerscholing
	 */
	public String getRedenHerscholing() {
		return redenHerscholing;
	}

	/**
	 * setter: Zet de reden van herscholing
	 * @param redenHerscholing
	 */
	public void setRedenHerscholing(String redenHerscholing) {
		/* vrij veld, moeilijk controle te doen*/
		if (redenHerscholing == null) throw new IllegalArgumentException("null waardes niet aanvaard");
		this.redenHerscholing = redenHerscholing;
	}

	@Override
	public String getTypeCursist() {
		return "Herscholingcursist";
	}
	
	@Override
	public Object[] getInfoToBeSaved(IPersistentieController pController)
	{
		return pProvider.getInfoToBeSaved(pController);

	}
	public IPersistentieProvider getPersistentieProvider(){
		return this.pProvider;
	}
	public void setPersistentieProvider(IPersistentieProvider provider){
		
		this.pProvider = provider;
		super.setPersistentieProvider(provider);
		provider.setTarget(this);
	}

}
